The present invention relates in general to telecommunications call processing and more particularly to a system and method for implementing telephony call processing functionality in a distributed manner over a local area network.
Traditional telephony call control applications (such as private branch exchanges (PBX), and central office (CO) exchanges are proprietary monolithic software applications. The ability for outside vendors to customize and integrate into these applications has been very limited. Computer Telephony Integration (CTI) in the PBX market and Intelligent Networking (IN) in the central office market are the methods used today to provide limited third party control of these applications.
CTI provides an ability for a third party application running on a server to control certain elements of a PBX. In a this environment, the Computer is the server running the third party application, the Telephony is the PBX and the Integration is the coordination performed between them. However, the amount of control a third party CTI application has is at the total discretion of the PBX manufacturer. For example, if the proprietary telephony application has not been designed to allow a feature to be externally controlled, then the third party CTI application cannot provide that functionality. Generally, only a single third party application can control a PBX. Further, the most prevalent types of CTI environments are application programming interface based proprietary solutions and therefore separate versions of the CTI application must be written for the various CTI environments.
IN provides a method for third party applications to provide functionality to control certain aspects of the operation of the CO. Through a set of triggers and events, third party functionality can be invoked at desired times in the call flow. Because of the CO environment, this is a very complex method and generally only the telephony company that owns the CO exchange creates these applications. A business who receives service from the CO exchange may desire some special functionality but is not allowed to provide it.
Therefore, it is desirable to provide the capability for a third party application to control a PBX that is not constrained by the PBX vendor and allows outside vendors to customize and integrate into PBX application.
From the foregoing, it may be appreciated that a need has arisen for a capability to implement telephony call control in an environment that multiple vendors can integrate and control any and all call functionality. In accordance with the present invention, a system and method for implementing telephony call control via a set of components that communicate with each other via a unique telephony protocol is provided that substantially eliminates or reduces disadvantages and problems associated with conventional CTI and IN call control.
According to an embodiment of the present invention there is provided a system for implementing telephony call control functionality via a set of software components. Together the set of components provide the overall call control for the system. The set of components may be all executing on a single server or maybe distributed among multiple servers. The set of components may be designed by a single vendor or multiple vendors. When distributed among multiple servers, the components communicate via a unique telephony protocol.
The present invention provides various technical advantages over conventional methods of providing telephony call control. For example, one technical advantage is that the original telephony application and all third party applications are treated as equals. One or many third party applications can work along side the original call control application and provide any desired functionality. Another technical advantage is that, since components can reside on multiple servers, additional functionality can be added on another server and not interfere with the operation of existing applications. Yet another technical advantage is that it is easy to have the same components running on two servers and the servers provide redundancy for each other in the case of failure. Other technical advantages may be readily ascertainable by those skilled in the art from the following figures, description, and claims.